package khl.ooo.domain.cursus;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.TreeSet;
import java.util.Comparator;  
import java.util.Set;  
import java.util.TreeSet;  

/**
 * Maak een Klasse CursusCollection die:
 * 		- doorlopen kan worden met een for each
 * 		- bij het toevoegen van een cursus controleert of het tijdsinterval niet overlapt met een andere cursus voor deze docent
 * 		- een methode voorziet om te sorteren op vakCode
 * 		- een methode voorziet om te sorteren op docent
 * @author Kevin
 * @author Matthias (wa dingen toegevoegd)
 */

// ben hier mee bezig
public class CursusCollection implements Iterable, Serializable { 
TreeSet<Cursus> cursussen;
//begin setup
private static CursusCollection uniqueInstance;
public CursusCollection(TreeSet<Cursus> cursen)
	{this.addCursussen(cursen);}//TODO kan eenvoudiger met constructor van TreeSet
public CursusCollection(Cursus c)
	{this.addCursussen(c);}
public CursusCollection()
{
	
}

public static CursusCollection getInstance(){
	if (uniqueInstance==null)
	{uniqueInstance = new CursusCollection();}
	return uniqueInstance;
}
private void addCursussen(Cursus c){
	if (c!=null && c instanceof Cursus && !cursussen.contains(c))
	{cursussen.add(c);}
	else {throw new IllegalArgumentException();}
	}
private void addCursussen(TreeSet<Cursus> c){
	if (c!=null && c instanceof TreeSet)
	{cursussen.addAll(c);}
	else {throw new IllegalArgumentException();}
	}

public String toonCursussen(){
	ArrayList a = new ArrayList();
	Iterator i = cursussen.iterator();
	while (i.hasNext()) a.add(i.next());
	for (int t=1; t< a.size(); t++)
	{System.out.println(a.get(t).toString());}
	return "----------------------------------";
}
@Override
public Iterator iterator() {
	return null;
}



}